<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>基本列表</title>
    <script type="text/javascript" src="../js/vue.js"></script>
  </head>
  <body>
    <div id="root">
      <h2></h2>
      <button @click="updateMei">更新马冬梅的信息</button>
      <ul>
        <li v-for="(p,index) of persons" :key="p.id">
          {{p.name}} - {{p.age}} - {{p.sex}}
        </li>
      </ul>
    </div>
  </body>

  <script type="text/javascript">
    Vue.config.productionTip = false
    const vm = new Vue({
      el: '#root',
      data: {
        persons: [
          { id: '001', name: '马冬梅', age: 30, sex: '女' },
          { id: '002', name: '周冬雨', age: 31, sex: '女' },
          { id: '003', name: '周杰伦', age: 18, sex: '男' },
          { id: '004', name: '温兆伦', age: 19, sex: '男' },
        ],
      },
      methods: {
        updateMei() {
          // this.persons[0].name = '马老师' //该方式可以更新值
          // this.persons[0].age = 50 //该方式可以更新值
          // this.persons[0].sex = '男' //该方式可以更新值
          // this.persons[0] = { id: '001', name: '马老师', age: 50, sex: '男' } //不奏效
          this.persons.splice(0,1,{id:'001',name:'马老师',age:50,sex:'男'}) //奏效，原因是调用内置方法会调用底层set
        },
      },
    })
  </script>
</html>
